package cn.maihe.elg.operation.service.system;

import cn.maihe.elg.operation.model.vo.Query;
import cn.maihe.elg.operation.repository.entity.OrganizationDO;
import cn.maihe.elg.operation.repository.entity.UserDO;
import com.github.pagehelper.PageInfo;

/**
 * @author JHWei on 2018-07-13.
 * @ 创建日期：2018-07-13
 */
public interface OrganizationService {

    /**
     * 新增机构
     *
     * @param organization 机构信息
     * @param user
     */
    void createOrganization(OrganizationDO organization, UserDO user);

    /**
     * 查询机构列表
     *
     * @return
     */
    PageInfo<OrganizationDO> findOrganizationByPage(Query obj);

    /**
     * 获取机构详情信息
     *
     * @param id 机构ID
     * @return
     */
    OrganizationDO getOrganization(Long id);

    /**
     * 获取租户机构代码
     * @param id
     * @return
     */
    String getOrganizationCode(Long id);

    /**
     * 修改机构信息
     *
     * @param organization 机构信息
     */
    void modifyOrganization(OrganizationDO organization);

    /**
     * 删除机构
     *
     * @param id 机构ID
     */
    void deleteOrganization(Long id);

    /**
     * 机构编码获取机构信息
     * orgCode=-1时返回null
     * @param orgCode
     * @return
     */
    OrganizationDO getOrganizationByCode(String orgCode);

    Integer getAuditTotal();
}
